home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / parted / geom.h < prev    next >
C/C++ Source or Header  |  2006-04-20  |  3KB  |  73 lines

  1. /*
  2.     libparted - a library for manipulating disk partitions
  3.     Copyright (C) 1998-2001, 2005 Free Software Foundation, Inc.
  4.  
  5.     This program is free software; you can redistribute it and/or modify
  6.     it under the terms of the GNU General Public License as published by
  7.     the Free Software Foundation; either version 2 of the License, or
  8.     (at your option) any later version.
  9.  
  10.     This program is distributed in the hope that it will be useful,
  11.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.     GNU General Public License for more details.
  14.  
  15.     You should have received a copy of the GNU General Public License
  16.     along with this program; if not, write to the Free Software
  17.     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  18. */
  19.  
  20. #ifndef PED_GEOM_H_INCLUDED
  21. #define PED_GEOM_H_INCLUDED
  22.  
  23. #include <parted/device.h>
  24. #include <parted/timer.h>
  25.  
  26. typedef struct _PedGeometry    PedGeometry;
  27.  
  28. struct _PedGeometry {
  29.     PedDevice*        dev;
  30.     PedSector        start;
  31.     PedSector        length;
  32.     PedSector        end;
  33. };
  34.  
  35. extern int ped_geometry_init (PedGeometry* geom, const PedDevice* dev,
  36.                   PedSector start, PedSector length);
  37. extern PedGeometry* ped_geometry_new (const PedDevice* dev, PedSector start,
  38.                       PedSector length);
  39. extern PedGeometry* ped_geometry_duplicate (const PedGeometry* geom);
  40. extern PedGeometry* ped_geometry_intersect (const PedGeometry* a,
  41.                                const PedGeometry* b);
  42. extern void ped_geometry_destroy (PedGeometry* geom);
  43. extern int ped_geometry_set (PedGeometry* geom, PedSector start,
  44.                  PedSector length);
  45. extern int ped_geometry_set_start (PedGeometry* geom, PedSector start);
  46. extern int ped_geometry_set_end (PedGeometry* geom, PedSector end);
  47. extern int ped_geometry_test_overlap (const PedGeometry* a,
  48.                              const PedGeometry* b);
  49. extern int ped_geometry_test_inside (const PedGeometry* a,
  50.                      const PedGeometry* b);
  51. extern int ped_geometry_test_equal (const PedGeometry* a, const PedGeometry* b);
  52. extern int ped_geometry_test_sector_inside (const PedGeometry* geom,
  53.                                PedSector sect);
  54.  
  55. extern int ped_geometry_read (const PedGeometry* geom, void* buffer,
  56.                   PedSector offset, PedSector count);
  57. extern int ped_geometry_write (PedGeometry* geom, const void* buffer,
  58.                    PedSector offset, PedSector count);
  59. extern PedSector ped_geometry_check (PedGeometry* geom, void* buffer,
  60.                      PedSector buffer_size, PedSector offset,
  61.                      PedSector granularity, PedSector count,
  62.                      PedTimer* timer);
  63. extern int ped_geometry_sync (PedGeometry* geom);
  64. extern int ped_geometry_sync_fast (PedGeometry* geom);
  65.  
  66. /* returns -1 if "sector" is not within dest's space. */
  67. extern PedSector ped_geometry_map (const PedGeometry* dst,
  68.                    const PedGeometry* src,
  69.                    PedSector sector);
  70.  
  71. #endif /* PED_GEOM_H_INCLUDED */
  72.  
  73.